package com.enhe.gck.service.impl;

import com.enhe.gck.CarbonBaseConstant;
import com.enhe.gck.item.CarHWANE16654Item;
import com.kuangkie.carbon.common.IntegrationMsg;
import com.kuangkie.carbon.panel.CarbonPanel;
import com.kuangkie.carbon.record.FGRecord;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Objects;

/**
 * @Author chu bo
 * @CreateTime 2024/7/7 23:32 星期日
 */
@Slf4j
@Service
public class CarService {

    public void updateTare(String carNo, Double newTare) {
        FGRecord fgRecord = CarbonPanel.getRecordQueryFactory(CarbonBaseConstant.车辆管理_clgl).getProConJunctionFactory()
                .addEqual(CarHWANE16654Item.基本属性组_车牌号, carNo)
                .addEqual(CarHWANE16654Item.基本属性组_删除, false)
                .goBack().queryARecord();
        if (Objects.nonNull(fgRecord)) {
            IntegrationMsg msg = CarbonPanel.getFGRecordBuilder(CarbonBaseConstant.车辆管理_clgl, fgRecord.getRecordCode())
                    .putAttribute(CarHWANE16654Item.基本属性组_最新皮重, BigDecimal.valueOf(newTare))
                    .putAttribute(CarHWANE16654Item.基本属性组_最新皮重更新时间, LocalDateTime.now())
                    .integrate();
            if (msg.success()) {
                log.info("更新{} 车辆最新皮重:[{}] 成功!", carNo, newTare);
            } else {
                log.error("更新{} 车辆最新皮重:[{}] 失败!原因:{}", carNo, newTare, msg.getRefuseMsgContentStr());
            }
        } else {
            log.error("{} 的车辆信息不存在,更新车辆最新皮重失败!", carNo);
        }
    }

}
